/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package phd.dupenois.changeidentifiers.engine;

import phd.dupenois.changeidentifiers.ChangeIdentifier;
import phd.dupenois.changeidentifiers.footprints.algorithms.FootprintAlgorithm;

/**
 *
 * @author Max
 */
public abstract class ChangeIdentifierApplication implements ChangeIdentifierApplicationInterface, EngineListener{
    protected final EngineInterface engine;
    protected ChangeIdentifierApplication(){
        this(false);
        //System.out.println("HERE 2");
    }
    protected ChangeIdentifierApplication(boolean terminatingTestInstance){
        //System.out.println("HERE 1 "+terminatingTestInstance);
        if(!terminatingTestInstance) {
            this.engine = new Engine(this, this);
        }else{
            this.engine = new TerminatingRunEngine(this, this);
        }
    }

    public void startedExecution(long time) {}

    public void finishedExecution(long timeTaken) {}

    public void startedChangeIdentifier(ChangeIdentifier identifier, long time) {}

    public void finishedChangeIdentifier(ChangeIdentifier identifier, long timeTaken) {}

    public void startedFootprintAlgorithm(FootprintAlgorithm footprintAlgorithm, long time) {}

    public void finishedFootprintAlgorithm(FootprintAlgorithm footprintAlgorithm, long timeTaken) {}

    public void changeIdentifierBrokenTotalThreshold(ChangeIdentifier identifier, double threshold, double valueAdded, double totalValue) {}

    public void changeIdentifierBrokenOwnThreshold(ChangeIdentifier identifier, double threshold, double value) {}





}
